package test1;

import extthread.MyThread;

/**
　* @Description: TODO
　* @param ${tags}
　* @return ${return_type}
　* @throws
　* @author Merlin
　* @date 2018/6/19 18:53
　*/

/**
 * synchronized 锁重入
 * 关键字synchronized 拥有锁重入的功能，也就是在使用synchronized时，当一个线程得到一个对象锁后，
 * 再次请求此对象锁时是可以再次得到该对象的锁的。这也证明在一个synchronized方法、块
 * 的内部调用本类的其他synchronized方法/块时，是永远可以得到锁的。
 */
public class Run {
	public static void main(String[] args) {
		MyThread t = new MyThread();
		t.start();
	}
	/**
	 * 输出结果：
	 * service1
	   service2
	   service3
	 *
	 * "可重入锁"的概念是：自己可以再次获取自己的内部锁。比如有1条线程获得了某个对象的锁，
	 * 此时这个对象锁还没有释放，当其再次想要获取这个对象的锁的时候还是可以获取的，
	 * 如果不可重入的话，就会造成思索。
	 * 可重入锁也支持在父子类继承的环境中。
	 */
}
